﻿@using TamoCRM.Core
@model TamoCRM.Web.Mvc.Areas.Admin.Models.Contacts.ContactCreateModel

@{
    ViewBag.Title = "Tìm kiếm contact cho quản lý TVTS";
    Layout = "~/Areas/Admin/Views/Shared/_Layout.cshtml";
    
    var consultantNomrs = ViewBag.ConsultantNomrs;
    var lstConsultantNomrs = new SelectList(consultantNomrs, "ConsultantId", "FullName");

    var branches = ViewBag.Branches;
    var lstBranches = new SelectList(branches, "BranchId", "Name");
}

<div class="breadcrumbs" id="breadcrumbs">
    <script type="text/javascript">
        try {
            ace.settings.check('breadcrumbs', 'fixed');
        }
        catch (e) {

        }
    </script>

    <ul class="breadcrumb">
        <li>
            <i class="icon-home home-icon"></i>
            <a href="/Home">Trang chủ</a>
        </li>

        <li>
            <a href="javascript:void(0);">Danh mục</a>
        </li>
        <li class="active">Contact</li>
    </ul>
</div>

<div class="page-content">
    <div class="page-header">
        <h1>Tìm kiếm contact cho quản lý TVTS</h1>
    </div>
    <!-- /.page-header -->

    <div class="row">
        <div class="col-xs-12">
            <!-- PAGE CONTENT BEGINS -->
            @using (Ajax.BeginForm("FilterContactSearchManager", "ContactFilter", new AjaxOptions { HttpMethod = "POST" }, new { enctype = "multipart/form-data", @class = "form-horizontal", role = "form", id = "filter_contact_search_fast_form" }))
            {
                @Html.AntiForgeryToken()
                <div class="form-group">
                    <div class="col-sm-12" id="alert">
                    </div>
                </div>
                <div style="border: 1px solid #c5d0dc; padding: 15px 20px 0 20px;">
                    <div class="form-group" style="margin-left: 20px;">
                        <div class="col-sm-1">
                            Họ và Tên
                        </div>
                        <div class="col-sm-3">
                            <input id="txtName" type="text" style="width: 90%;" />
                        </div>
                        <div class="col-sm-1" style="width: 9%;">
                            Điện thoại
                        </div>
                        <div class="col-sm-3" style="width: 24%;">
                            <div class="input-group">
                                <span class="input-group-addon">
                                    <i class="icon-phone"></i>
                                </span>
                                <input id="txtMobile" type="text" />
                            </div>
                        </div>
                        <div class="col-sm-1">
                            Email
                        </div>
                        <div class="col-sm-3">
                            <div class="input-group">
                                <span class="input-group-addon">
                                    <i class="icon-envelope"></i>
                                </span>
                                <input id="txtEmail" type="text" />
                            </div>
                        </div>
                    </div>
                </div>
                
                <div class="space-6"></div>
                @Html.DropDownList("BranchId", lstBranches, new { @style = "width: 120px;float: left;margin-right:10px; height:26px;" })
                @Html.DropDownList("ConsultantId", lstConsultantNomrs, new { @style = "width: 280px;float: left;margin-right:10px; height:26px;" })
                <button id="btnForward" class="btn-primary" style="float: left; margin-right: 10px;">Chuyển TVTS</button>
                <button id="btnDelete" class="btn-primary" style="float: left; margin-right: 10px;">Xóa Contact</button>
                <button id="btnGoFilter" class="btn-primary" style="float: right; margin-left: 10px;">Tìm kiếm</button>
                <button id="btnClearFilter" class="btn-primary" style="float: right;">Xóa trang</button>
                <div class="clearfix"></div>
            }

            <div class="space-6"></div>
            <table id="grid-table"></table>
            <div id="grid-pager"></div>

            <!-- PAGE CONTENT ENDS -->
        </div>
        <!-- /.col -->
    </div>
    <!-- /.row -->
</div>

<script type="text/javascript">
    var grid_selector = "#grid-table";
    var groupType = '@ViewBag.GroupType';
    var url = 'admin/api/contact/filtersearchmanager?name={0}&mobile={1}&email={2}&branchId={3}';
    var heades = ['Id', 'Họ và tên', 'Điện thoại', 'Level', 'Ngày', 'Sáng/Chiều', 'Giờ', 'Nội dung cuộc gọi gần nhất', 'Trạng thái chăm sóc', 'Tổng số cuộc gọi', 'TVTS', 'Ngày phân contact', 'Xem', '<input type="checkbox" id="chkSelectAll" onclick="fixCheckBoxGrid(event)" />'];
    var model = [
        { name: 'Id', index: 'Id', editable: false, sorttype: 'string', editoptions: { disabled: true }, width: '0px' },
        { name: 'Fullname', index: 'Fullname', editable: false, width: '90px', sorttype: 'string' },
        { name: 'Mobile', index: 'Mobile', editable: false, width: '80px', sorttype: 'string' },
        { name: 'LevelId', index: 'LevelId', editable: false, width: '40px', sorttype: 'string', align: 'center', formatter: levelFomatter },
        { name: 'AppointmentDate', index: 'AppointmentDate', editable: false, width: '65px', align: 'center', formatter: 'date', formatoptions: { srcformat: 'Y-m-dTH:i:s', newformat: 'd/m/Y' } },
        { name: 'AppointmentAmPm', index: 'AppointmentDate', editable: false, width: '75px', align: 'center', formatter: stringFormatter },
        { name: 'AppointmentTime', index: 'AppointmentDate', editable: false, width: '40px', align: 'center', formatter: 'date', formatoptions: { srcformat: 'Y-m-dTH:i:s', newformat: 'H:i' } },
        { name: 'CallInfo', index: 'CallInfo', editable: false, width: '180px', sorttype: 'string', align: 'left' },
        { name: 'StatusCareId', index: 'StatusCareId', editable: false, width: '120px', formatter: statusCareFomatter },
        { name: 'CallAmount', index: 'CallAmount', editable: false, width: '60px', align: 'center' },
        { name: 'UserId', index: 'UserId', editable: false, width: '90px', formatter: userFomatter },
        { name: 'HandoverDate', index: 'HandoverDate', editable: false, formatter: 'date', formatoptions: { newformat: 'd/m/Y' }, width: '80px' },
        { name: 'Function', index: 'Function', editable: false, width: '55px', align: 'center', formatter: "dynamicLink",
            formatoptions: {
                cellValue: function (cellValue, rowId, rowData, options) {
                    return '<div style="color:#810c15;margin:5px;"><a style="cursor: pointer;" onclick="return openDialog(' + rowData.Id + ')"><img style="width:16px; height:16px;" src="../../../../Images/edit-16.png"/></a></div>';
                }
            }
        },
        { name: 'chkSelect', index: 'chkSelect', editable: false, edittype: 'checkbox', align: 'center', width: '40px', editoptions: { value: "True:False" }, formatter: checkboxFomatter, formatoptions: { disabled: false } }
    ];

    $(document).ready(function () {
        if (groupType != '@((int)GroupType.ManagerTVTS)') {
            $('#ConsultantId').css('display', 'none');
            $('#btnForward').css('display', 'none');
            $('#btnDelete').css('display', 'none');
            $('#BranchId').css('display', 'none');
            heades.splice(12, 2);
            model.splice(12, 2);
        }
        else {
            $('#ConsultantId').css('display', '');
            $('#btnForward').css('display', '');
            $('#btnDelete').css('display', '');
            $('#BranchId').css('display', '');
        }
        
        bindGlobalStatusMaps();
        var branchId = '@ViewBag.BranchId';
        setupGridWithoutEdit("#grid-table", "#grid-pager", url.format('', '', '', branchId), "admin/api/contact/edit", "Id", "Danh sách Contact", heades, model);
        $(grid_selector).jqGrid("setGroupHeaders", {
            useColSpanStyle: true,
            groupHeaders: [
                { startColumnName: "Fullname", numberOfColumns: 2, titleText: '<table style="width:100%;border-spacing:0px;"><tr><td style="text-align:center;height:40px;"><b>Thông tin Contact</b></td></tr></table>' },
                { startColumnName: "AppointmentDate", numberOfColumns: 3, titleText: '<table style="width:100%;border-spacing:0px;"><tr><td style="text-align:center;"><b>Thông tin lịch hẹn gọi lại</b></td></tr></table>' },
                { startColumnName: "CallInfo", numberOfColumns: 2, titleText: '<table style="width:100%;border-spacing:0px;"><tr><td style="text-align:center;"><b>Tình trạng chăm sóc</b></td></tr></table>' }
            ]
        });

        $(window).keydown(function(e) {
            if (e.keyCode == 13) {
                e.preventDefault();
                $("#btnGoFilter").click();
            }
        });

        $("#btnGoFilter").click(function(e) {
            e.preventDefault();

            // Param
            var name = $('#txtName').val();
            var email = $('#txtEmail').val();
            var mobile = $('#txtMobile').val();
            if (name.length == 0 && email.length == 0 && mobile.length == 0) {
                alertError("Nội dung tìm kiếm không phù hợp.");
                return;
            }

            if (!validateMobile(mobile)) {
                alertError("Số điện thoại tìm kiếm không đúng định dạng.");
                return;
            }

            if (!validateEmail(email)) {
                alertError("Email tìm kiếm không đúng định dạng.");
                return;
            }

            // Format Url
            alertHide();
            var newUrl = '/' + url.format(name, mobile, email, branchId);
            jQuery(grid_selector).jqGrid().setGridParam({ url: newUrl }).trigger("reloadGrid");
        });
        $("#btnClearFilter").click(function(e) {
            e.preventDefault();

            // Param
            $('#txtEmail').val('');
            $('#txtMobile').val('');
        });
        $("#btnForward").click(function(e) {
            e.preventDefault();

            // Param
            var ids = '';
            var items = $("#grid-table td input");
            for (var i = 0; i < items.length; i++) {
                if ($(items[i]).is(':checked')) {
                    ids += ids.length == 0
                        ? $('#grid-table').jqGrid('getCell', i + 1, 'Id')
                        : ',' + $('#grid-table').jqGrid('getCell', i + 1, 'Id');
                }
            }
            if (ids.length == 0) {
                alertError('Bạn chưa chọn contact để Chuyển giao, vui lòng chọn!');
                return;
            }
            var userId = $('#ConsultantId').val();

            $.ajax({
                type: 'POST',
                url: '/admin/api/contact/Forward',
                data: {
                    ids: ids,
                    userId: userId,
                    branchId: $('#BranchId').val()
                },
                beforeSend: function() {
                    alertProcess();
                },
                success: function(response) {
                    alertSuccess("Chuyển giao thành công " + response + " contacts");
                    $("#btnGoFilter").click();
                },
                error: function(request, status, ex) {
                    alertError("Hệ thống bị lỗi, Chuyển giao không thành công.");
                }
            });
        });
        $("#btnDelete").click(function (e) {
            e.preventDefault();

            // Param
            var ids = '';
            var items = $("#grid-table td input");
            for (var i = 0; i < items.length; i++) {
                if ($(items[i]).is(':checked')) {
                    ids += ids.length == 0
                        ? $('#grid-table').jqGrid('getCell', i + 1, 'Id')
                        : ',' + $('#grid-table').jqGrid('getCell', i + 1, 'Id');
                }
            }
            if (ids.length == 0) {
                alertError('Bạn chưa chọn contact để xóa, vui lòng chọn!');
                return;
            }

            var r = confirm("Có phải bạn muốn xóa contact đã chọn?");
            if (r == true) {
                var arrId = ids.split(',');
                for (var i = 0; i < arrId; i++) {
                    var id = arrId[i];
                    var newUrl = "/admin/api/contact/delete/{0}".format(id);
                    $.ajax({
                        type: 'GET',
                        url: newUrl,
                        success: function (data) {
                            jQuery(grid_selector).jqGrid().trigger("reloadGrid");
                        },
                        error: function (request, status, ex) {
                            $("#alert").addClass("alert alert-block alert-error");
                            $("#alert").html("Xóa contact không thành công.");
                        }
                    });
                }
                
            }
        });

        $("#chkSelectAll").click(function() {
            checkAll('chkSelectAll', 'checkbox');
        });
       
        // Group
        $("#BranchId").change(function () {
            GetConsultantNomrByBranchId();
        });

        GetConsultantNomrByBranchId();
    });
</script>
